package com.weseal.dao;

import com.weseal.domain.FunctionInfo;
import com.weseal.query.FunctionInfoQuery;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface FunctionInfoDao {

	int insert(FunctionInfo record);

	int delete(Long id);

	int update(FunctionInfo record);

	FunctionInfo selectById(Long id);

	List<FunctionInfo> pageQuery(FunctionInfoQuery query);

	/**
	 * 根据角色查询功能
	 *
	 * @param roleId
	 * @return
	 */
	List<FunctionInfo> selectByRoleId(Long roleId);
	
	/**
	 * 根据角色id 删除对应功能
	 * @param roleId
	 */
	void deleteByRoleId(Long roleId);
	
	/**
	 * 关联角色与功能
	 * @param roleId
	 * @param functionIds
	 */
	void insertBatch(@Param("roleId") Long roleId,@Param("functionIds") List<Integer> functionIds);

	/**
	 * 查询所有权限
	 *
	 * @return
	 */
	List<FunctionInfo> selectAll();
}